Introduccion a plotly
Plotly es una herramienta alternativa para la visualización de datos en R, funciona con una lógica similar a ggplot2 pero te da la posibilidad de añadir gran interacción en los gráficos con una personalización diferente y única. Para empezar, cargaremos el paquete de plotly.
library(plotly)
Su principal función es plot_ly. Comúnmente se deberán ingresar los siguientes argumentos:
data: Para indicar los datos a utilizar (si es necesario).
(x,y): Para indicar las estéticas de la función.
type: Para indicar el tipo de gráfico a realizar.
library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
plot_ly( x = c("Leones", "Orangutanes", "Monos"), y = c(5, 7, 10),
type = "bar" )
## Warning: `arrange_()` is deprecated as of dplyr 0.7.0.
## Please use `arrange()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
Al hacer esto obtenemos un gráfico de barras sencillo, donde se puede apreciar que cuenta con botones predeterminados interactivos con una interfaz más atractiva que la de ggplot2. En plotly se puede realizar cualquier tipo de gráfico, solo basta con consultar la página de plotly en R enlace aquí donde se encontraran desde los gráficos más sencillos hasta los más elaborados.
De hecho, plotly simplifica la elaboración de algunos tipos de gráficos, como lo es el gráfico de sectores circulares.
library(plotly)
plot_ly( labels = c("Leones", "Orangutanes","Monos"), values = c(5, 7, 10),
type = "pie" )
Ahora, exploremos algunos parámetros para la personalización de nuestros gráficos:
color: Se utiliza para añadir un fill-color relevante según un atributo.
colors: Se utiliza para añadir una paleta de colores, estos pueden ser paletas ya existentes o colores hexadecimales indicados.
alpha: Este parámetro va ligado a la intensidad del color indicado en el parámetro “color”.
install.packages("dplyr")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
library(dplyr);library(plotly)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
fig <- ggplot2::diamonds
fig <- fig %>% count(cut, clarity)
fig <- fig %>% plot_ly(x = ~cut,
y = ~n,
color = ~clarity,
colors = "YlOrRd",
alpha=0.75)
fig
## No trace type specified:
## Based on info supplied, a 'bar' trace seems appropriate.
## Read more about this trace type -> https://plot.ly/r/reference/#bar
Pero… ¿Cómo añadimos títulos y personalizamos más los gráficos?
Resulta que plot_ly a diferencia de ggplot2 trabaja con una estructura básica de html, por lo que necesitamos apoyarnos con la flexibilidad de manipulación de datos que nos aporta el paquete dplyr. Para lograr la personalización de los gráficos, el paquete de plotly se apoya en otras dos funciones:
add_trace: Añade una serie descriptiva de datos en la gráfica.
Layout: Añade cada aspecto especifico del gráfico (Títulos, leyendas, bordes, colores, tipográficas, etc.)
Personalizando la ultima gráfica
library(plotly);library(ggplot2)
fig <- ggplot2::diamonds
fig <- fig %>% count(cut, clarity)
fig <- fig %>% plot_ly(x = ~cut,
y = ~n,
color = ~clarity,
colors = "YlOrRd",
alpha=0.75)
fig <- fig%>%layout(title = 'Número de diamantes según su calidad y corte')
fig
## No trace type specified:
## Based on info supplied, a 'bar' trace seems appropriate.
## Read more about this trace type -> https://plot.ly/r/reference/#bar
Personalizando la primera gráfica
library(plotly)
Animals <- c("Leones", "Orangutanes",
"Monos")
BQ_Zoo <- c(20, 14, 23)
LA_Zoo <- c(12, 18, 29)
data <- data.frame(Animals, BQ_Zoo, LA_Zoo)
fig <- plot_ly(data, x = ~Animals,y = ~BQ_Zoo, type = 'bar',name = 'BQ Zoo')
fig <- fig %>% add_trace(y = ~LA_Zoo, name = 'LA Zoo')
fig <- fig %>% layout(yaxis = list(title = 'Count'),barmode = 'group')
fig
Para la personalización de los gráficos en Plotly existe un gran número de parámetros, por lo es necesario tener a la mano la página de plotly donde se pueden encontrar referencias para la personalización y manipulación de cada gráfico.
Bibliografía recomendada